home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Peter Lewis / Morpion 1.0.0 / source / PNL Libraries / MyVersionResource.unit < prev   
Encoding:
Text File  |  1993-09-02  |  1.3 KB  |  65 lines  |  [TEXT/PJMM]

  1. unit MyVersionResource;
  2.  
  3. interface
  4.  
  5.     type
  6.         versionRecord = packed record
  7.                 version: integer;
  8.                 devcode: byte;
  9.                 revision: byte;
  10.                 country: integer;
  11.                 short: str15;
  12.                 long: str255;
  13.                 name: str63;
  14.             end;
  15.  
  16.     procedure GetVersion (var vers: versionRecord);
  17.     procedure SetVersionParamText (c3: str255);
  18.  
  19. implementation
  20.  
  21.     procedure GetVersion (var vers: versionRecord);
  22.         var
  23.             vh: handle;
  24.             p: integer;
  25.     begin
  26.         with vers do begin
  27.             vh := GetResource('vers', 1);
  28.             if vh = nil then begin
  29.                 version := $0000;
  30.                 devcode := $20;
  31.                 revision := $00;
  32.                 country := 0;
  33.                 short := '0.0.0';
  34.                 long := 'Unknown v0.0.0';
  35.             end
  36.             else begin
  37.                 BlockMove(vh^, @vers, sizeof(vers));
  38.                 BlockMove(Ptr(longint(vh^) + (longint(@short) - longint(@vers)) + length(short) + 1), @long, sizeof(long));
  39.                 if length(short) >= sizeof(short) then
  40. {$PUSH}
  41.  {$R-}
  42.                     short[0] := chr(sizeof(short) - 1);
  43. {$POP}
  44.                 ReleaseResource(vh);
  45.             end;
  46.             p := pos(short, long);
  47.             while (p > 0) & (vers.long[p] <> ' ') do
  48.                 p := p - 1;
  49.             p := p - 1;
  50.             if p < 1 then
  51.                 p := 255;
  52.             name := copy(vers.long, 1, p);
  53.         end;
  54.     end;
  55.  
  56.     procedure SetVersionParamText (c3: str255);
  57.         var
  58.             vers: versionRecord;
  59.     begin
  60.         GetVersion(vers);
  61.         ParamText(vers.short, vers.long, vers.name, c3);
  62.     end;
  63.  
  64.  
  65. end.